#include<bits/stdc++.h>
#define sd(n) scanf("%d",&n) 
#define sld(n) scanf("%lld",&n)
#define pd(n) printf("%d", (n))
#define pld(n) printf("%lld", n)
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define fi first
#define se second
const int N=30;
#define INF 0x7fffffff
typedef long long int ll;
using namespace std;
//----------------------------------------------------------------------------//
//int st[N];
int a[N];
int n,aim;
int ans=0;
void dfs(int t,int sum)
{	
	if(t==n)
	{
		if(sum==aim) ans++;return;;
	}
	else if(sum>aim) return;
	else
	{
		dfs(t+1,sum);
		dfs(t+1,sum+a[t+1]);
	}
}
void solve()
{
	sd(n);sd(aim);
	for(int i=1;i<=n;i++) sd(a[i]);
	dfs(0,0);
	pd(ans);
	puts("");
}

int main()
{
	int T=1;
	//sd(T);
	while (T--)
	{
		solve();
	}
	return 0;
}